﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Reflection;

namespace bdxyit.com.RecruitmentAppSys.DALFactory
{
    public sealed class DataAccess
    {

        // Look up the DAL implementation we should be using
        private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];

        private DataAccess() { }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IAbilityLevelDAL CreateAbilityLevel()
        {
            string className = path + ".AbilityLevelDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IAbilityLevelDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IApplyJobActionDAL CreateApplyJobAction()
        {
            string className = path + ".ApplyJobActionDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IApplyJobActionDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IAreaListDAL CreateAreaList()
        {
            string className = path + ".AreaListDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IAreaListDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.ICompanyInfoDAL CreateCompanyInfo()
        {
            string className = path + ".CompanyInfoDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.ICompanyInfoDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.ICompanyPostDAL CreateCompanyPost()
        {
            string className = path + ".CompanyPostDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.ICompanyPostDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.ICompanysHrsDAL CreateCompanysHrs()
        {
            string className = path + ".CompanysHrsDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.ICompanysHrsDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IComputerLevelDAL CreateComputerLevel()
        {
            string className = path + ".ComputerLevelDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IComputerLevelDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IDegreeListDAL CreateDegreeList()
        {
            string className = path + ".DegreeListDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IDegreeListDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IEducationListDAL CreateEducationList()
        {
            string className = path + ".EducationListDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IEducationListDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IEthnicListDAL CreateEthnicList()
        {
            string className = path + ".EthnicListDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IEthnicListDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IFamilyInfoDAL CreateFamilyInfo()
        {
            string className = path + ".FamilyInfoDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IFamilyInfoDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.ILanguageLevelDAL CreateLanguageLevel()
        {
            string className = path + ".LanguageLevelDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.ILanguageLevelDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IOccupationalQualificationInfoDAL CreateOccupationalQualificationInfo()
        {
            string className = path + ".OccupationalQualificationInfoDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IOccupationalQualificationInfoDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IOtherEligibilityInfoDAL CreateOtherEligibilityInfo()
        {
            string className = path + ".OtherEligibilityInfoDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IOtherEligibilityInfoDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IPostActionDAL CreatePostAction()
        {
            string className = path + ".PostActionDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IPostActionDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IProfessionalListDAL CreateProfessionalList()
        {
            string className = path + ".ProfessionalListDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IProfessionalListDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IProfessionalTechnicalInfoDAL CreateProfessionalTechnicalInfo()
        {
            string className = path + ".ProfessionalTechnicalInfoDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IProfessionalTechnicalInfoDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IProfessionalTypeListDAL CreateProfessionalTypeList()
        {
            string className = path + ".ProfessionalTypeListDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IProfessionalTypeListDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.ISkillLevelIdentificationInfoDAL CreateSkillLevelIdentificationInfo()
        {
            string className = path + ".SkillLevelIdentificationInfoDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.ISkillLevelIdentificationInfoDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IUniversityListDAL CreateUniversityList()
        {
            string className = path + ".UniversityListDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IUniversityListDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IUserEducationDAL CreateUserEducation()
        {
            string className = path + ".UserEducationDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IUserEducationDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IUserInfoDAL CreateUserInfo()
        {
            string className = path + ".UserInfoDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IUserInfoDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.IWorkListInfoDAL CreateWorkListInfo()
        {
            string className = path + ".WorkListInfoDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.IWorkListInfoDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.ISkillListDAL CreateSkillList()
        {
            string className = path + ".SkillListDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.ISkillListDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.ISystemInfoDAL CreateSystemInfo()
        {
            string className = path + ".SystemInfoDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.ISystemInfoDAL)Assembly.Load(path).CreateInstance(className);
        }

        public static bdxyit.com.RecruitmentAppSys.IDAL.ITitlesListDAL CreateTitlesList()
        {
            string className = path + ".TitlesListDAL";
            return (bdxyit.com.RecruitmentAppSys.IDAL.ITitlesListDAL)Assembly.Load(path).CreateInstance(className);
        }
    }
}
